﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Core.Models;
using System.Data.Objects;

namespace Core.Repositories
{
    public class CommentRepository : Repository<Comment, DatabaseEntities>
    {

        public CommentRepository() : base()
        {
                     
        }

        public CommentRepository(ObjectContext context)
            : base(context)
        {
            
        }   

        //DatabaseEntities _db = new DatabaseEntities();

        //public IQueryable<Comment> Get()
        //{
        //    return _db.Comments.Include("Post").OrderBy(t => t.CreatedDate).ThenBy(t => t.ModifyDate);
        //}

        //public IQueryable<Comment> GetByPostId(int id)
        //{
        //    return Get().Where(t => t.PostId == id);
        //}

        //public Comment GetById(int id)
        //{
        //    return Get().SingleOrDefault(t => t.Id == id);
        //}

        //public Comment Create(Comment comment)
        //{
        //    try
        //    {
        //        _db.Comments.Add(comment);
        //        _db.SaveChanges();

        //        return comment;
        //    }
        //    catch (Exception ex)
        //    {
        //        throw new ArgumentException(ex.Message);
        //    } 
        //}

        //public Comment Edit(Comment comment)
        //{
        //    try
        //    {
        //        var original = Get().SingleOrDefault(t => t.Id == comment.Id);
        //        if (original != null)
        //        {
        //            original.Content = comment.Content;
        //            original.Email = comment.Email;
        //            original.FirstName = comment.FirstName;
        //            original.LastName = comment.LastName;
        //            original.ModifyDate = DateTime.Now;

        //            _db.SaveChanges();
        //        }

        //        return original;
        //    }
        //    catch (Exception ex)
        //    {
        //        throw new ArgumentException(ex.Message);
        //    } 
        //}

        //public int Delete(int id)
        //{
        //    try
        //    {
        //        var comment = Get().SingleOrDefault(t => t.Id == id);
        //        if (comment != null)
        //        {
        //            _db.Comments.Remove(comment);

        //            return _db.SaveChanges();
        //        }
        //        return 0;
        //    }
        //    catch (Exception ex)
        //    {
        //        throw new ArgumentException(ex.Message);
        //    }            
        //}
    }
}
